{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "from collections import namedtuple, defaultdict, Counter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "sns.set_context(\"poster\")\n",
    "sns.set_style(\"ticks\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "Tag = namedtuple(\"Tag\", [\"token\", \"tag\"])\n",
    "BEGIN_TAG = Tag(\"^\", \"<BOS>\")\n",
    "END_TAG = Tag(\"$\", \"<EOS>\")\n",
    "\n",
    "def load_sequences(filename, sep=\"\\t\", notypes=False):\n",
    "    sequences = []\n",
    "    prev_char_tag = \"O\"\n",
    "    with open(filename) as fp:\n",
    "        seq = []\n",
    "        for line in fp:\n",
    "            line = line.strip()\n",
    "            if line:\n",
    "                if not seq:\n",
    "                    seq = [BEGIN_TAG]\n",
    "                line = line.split(sep)\n",
    "                if notypes:\n",
    "                    line[1] = line[1][0]\n",
    "                seq.append(Tag(*line))\n",
    "            else:\n",
    "                seq.append(END_TAG)\n",
    "                sequences.append(seq)\n",
    "                seq = []\n",
    "        if seq:\n",
    "            seq.append(END_TAG)\n",
    "            sequences.append(seq)\n",
    "    return sequences\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "train = load_sequences(\"data/cleaned/train.BIEOU.tsv\", notypes=True)\n",
    "test = load_sequences(\"data/cleaned/dev.BIEOU.tsv\", notypes=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x7f8a6cdd4ad0>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n331XklRVVaU+ffq4PCYsLEwpKSnOxwCedM55/dd/A8+J8XdZAHqgO2MHACCwnDI0xMbGeuyrra2V\nJMXFxbm0x8fHq76+Xna7XQcOHNDgwYPdbp0WHx+vmpqaM6kZABDEujN2AAACS4/untTc3CyLxaLw\n8HCX9oiICEknL0E3Nzc757B+9TFNTU1ndNysrCy3ttbW1jN6LfQuHe1tHtc89Kb7fpvep9S73it6\nZtasWerfv79LW1lZmU+OvWvXLt15553661//qgEDBujGG2/UzJkzuzV2nO73L+NC10z7Ifjic4K1\naf7/fwD8q56MCdxyFb1K05GDKio7qKjKBpf23nbfb0/vU+p97xXBaejQobLb7ZoxY4aio6Nls9lU\nUFCggwcPKiEhwd/lhQxPa8N89TnB2jT//z8AvKVHoSEyMlIOh0MtLS3OvxBJUmNjoyRp0KBBioyM\n7PKKQmNjowYNGnRGx+0qEdXV1TkX1CG0hcq9v0PlfaJnioqK3KYB+cJLL73k8vUll1yixsZGLV++\nXHPnzj3l2HG6GBc88/dnRVfHb6jf759i/MTf/w+ATj0ZE7q1T4MnnX8t6pyf2qmmpkYxMTEKDw9X\nQkKCjh8/7hYcampqdNFFF/Xk8ACAIJKcnCxJzukYprEDABBYehQaxo0bJ6vVqsrKSpf27du3a9Kk\nSZKk8ePHO9s6tbS06L333nM+BgDQe/z973/Xz3/+cx04cMClfdeuXerbt69uuOGGU44dAIDAcsrp\nScePH1dbW5scDoekk7/wf/7555KkIUOGKCcnR2vXrtXIkSOVmJiokpISHT582LmhT2xsrG6++WYV\nFBQoOjpa0dHRWrZsmQYMGKBbb731LL41AIA/xMTEyGazaf78+fr5z3+uc889V++9957WrVunW265\nRcOHDz/l2AEACCynDA25ubl6//33nV8XFxdr/fr1slgs2rp1q+bMmSOHw6H8/HwdO3ZMycnJKi4u\ndpkvlZ+fryeffFLz5s1TS0uLxo0bp5KSki73fgAABDer1arS0lIVFhbqnnvu0bFjxxQTE6MZM2bo\nrrvukqRujR0AgMBxytBQWlp6yhfJzc017uzcv39/Pfzww3r44YdPrzoAQFCKjY3VU0895bHfYrGc\ncuwAAASOHq1pAAAAAND7sU8D4COeNmQLpU2OAABAcCI0AD7iaUO2UNrkCAAABCdCA+BDbHIEAACC\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f8a6a077690>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1,2)\n",
    "ax[0].hist([len(seq) for seq in train], bins=range(0,50,1))\n",
    "ax[1].hist([len(seq) for seq in test], bins=range(0,50,1))\n",
    "ax[0].set_title(\"Train\")\n",
    "ax[1].set_title(\"Validation\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['<BOS>', '<EOS>', 'B', 'E', 'I', 'O', 'U']"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels = sorted(Counter(t.tag for seq in train for t in seq).keys(), key=lambda x: x.split(\"-\")[-1])\n",
    "labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'<BOS>': 1, '<EOS>': 2, 'B': 3, 'E': 4, 'I': 5, 'MASK': 0, 'O': 6, 'U': 7}"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels = [\"MASK\"] + labels\n",
    "label2id = {l: i for i, l in enumerate(labels)}\n",
    "label2id"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10589\n"
     ]
    }
   ],
   "source": [
    "vocab = sorted(Counter(t.token for seq in train for t in seq).keys())\n",
    "vocab = [\"<MASK>\", \"<OOV>\"] + vocab\n",
    "word2id = {l: i for i, l in enumerate(vocab)}\n",
    "print len(vocab)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Modeling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.preprocessing import sequence\n",
    "from keras.models import Sequential, Model\n",
    "from keras.layers import Dense, Dropout, Embedding, LSTM, Input, TimeDistributed, Merge, merge\n",
    "from keras.callbacks import TensorBoard, ModelCheckpoint"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "INPUT_DIM=len(vocab)\n",
    "EMBED_DIM=64\n",
    "MAXLENGTH=50\n",
    "NUM_LABELS=len(label2id)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('X_train shape:', (2394, 50))\n",
      "('X_test shape:', (1000, 50))\n"
     ]
    }
   ],
   "source": [
    "X_train = sequence.pad_sequences([[word2id.get(t.token, word2id[\"<OOV>\"])\n",
    "                                   for t in seq] for seq in train], maxlen=MAXLENGTH)\n",
    "X_test = sequence.pad_sequences([[word2id.get(t.token, word2id[\"<OOV>\"])\n",
    "                                  for t in seq] for seq in test], maxlen=MAXLENGTH)\n",
    "print('X_train shape:', X_train.shape)\n",
    "print('X_test shape:', X_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('y_train shape:', (2394, 50, 1))\n",
      "('y_test shape:', (1000, 50, 1))\n",
      "('train_sample_weight shape:', (2394, 50))\n",
      "('test_sample_weight shape:', (1000, 50))\n"
     ]
    }
   ],
   "source": [
    "Y_train = sequence.pad_sequences([[label2id[t.tag] for t in seq] for seq in train], maxlen=MAXLENGTH)\n",
    "Y_test = sequence.pad_sequences([[label2id[t.tag] for t in seq] for seq in test], maxlen=MAXLENGTH)\n",
    "\n",
    "train_sample_weight = Y_train != 0\n",
    "test_sample_weight = Y_test != 0\n",
    "\n",
    "Y_train = np.expand_dims(Y_train, -1)\n",
    "Y_test = np.expand_dims(Y_test, -1)\n",
    "\n",
    "\n",
    "print('y_train shape:', Y_train.shape)\n",
    "print('y_test shape:', Y_test.shape)\n",
    "\n",
    "print('train_sample_weight shape:', train_sample_weight.shape)\n",
    "print('test_sample_weight shape:', test_sample_weight.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "num_layers=3\n",
    "lstm_units=32\n",
    "dense_units=32\n",
    "dropout_p=0.5\n",
    "\n",
    "input_layer = Input(shape=(MAXLENGTH,), dtype='int32')\n",
    "emb = Embedding(input_dim=INPUT_DIM, output_dim=EMBED_DIM,\n",
    "                           input_length=MAXLENGTH, mask_zero=True,\n",
    "                dropout=dropout_p)(input_layer)\n",
    "# apply forwards LSTM\n",
    "forward_lstms = []\n",
    "prev_layer = emb\n",
    "for i in xrange(num_layers):\n",
    "    fw_lstm = LSTM(lstm_units, return_sequences=True,\n",
    "                   dropout_U=dropout_p, dropout_W=dropout_p)(prev_layer)\n",
    "    prev_layer = fw_lstm\n",
    "    forward_lstms.append(fw_lstm)\n",
    "\n",
    "# apply backwards LSTM\n",
    "backward_lstms = []\n",
    "prev_layer = emb\n",
    "for i in xrange(num_layers):\n",
    "    bw_lstm = LSTM(lstm_units, return_sequences=True,\n",
    "                   go_backwards=True, dropout_U=dropout_p, dropout_W=dropout_p)(prev_layer)\n",
    "    prev_layer = bw_lstm\n",
    "    backward_lstms.append(bw_lstm)\n",
    "\n",
    "merged_layer = merge([fw_lstm, bw_lstm], mode=\"concat\")\n",
    "dropout = Dropout(p=dropout_p)(merged_layer)\n",
    "dense = TimeDistributed(Dense(dense_units, activation='tanh'))(dropout)\n",
    "dense2 = TimeDistributed(Dense(dense_units, activation='tanh'))(dense)\n",
    "out = TimeDistributed(Dense(NUM_LABELS, activation='softmax'))(dense2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "model = Model(input=input_layer, output=out)\n",
    "model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', sample_weight_mode=\"temporal\",  metrics=['accuracy'])\n",
    "tb_callback = TensorBoard(log_dir='./tb_logs', histogram_freq=0, write_graph=True)\n",
    "mc_callback = ModelCheckpoint(\"models/LSTM1_word.hdf5\", monitor='val_loss', save_best_only=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/entity/anaconda2/lib/python2.7/site-packages/tensorflow/python/ops/gradients.py:90: UserWarning: Converting sparse IndexedSlices to a dense Tensor of unknown shape. This may consume a large amount of memory.\n",
      "  \"Converting sparse IndexedSlices to a dense Tensor of unknown shape. \"\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 2394 samples, validate on 1000 samples\n",
      "Epoch 1/30\n",
      "2394/2394 [==============================] - 142s - loss: 1.6753 - acc: 0.3605 - val_loss: 1.6171 - val_acc: 0.3223\n",
      "Epoch 2/30\n",
      "2394/2394 [==============================] - 112s - loss: 1.1358 - acc: 0.3841 - val_loss: 1.4676 - val_acc: 0.3227\n",
      "Epoch 3/30\n",
      "2394/2394 [==============================] - 111s - loss: 1.0858 - acc: 0.3870 - val_loss: 1.4444 - val_acc: 0.3227\n",
      "Epoch 4/30\n",
      "2394/2394 [==============================] - 112s - loss: 1.0814 - acc: 0.3872 - val_loss: 1.4323 - val_acc: 0.3227\n",
      "Epoch 5/30\n",
      "2394/2394 [==============================] - 111s - loss: 1.0686 - acc: 0.3873 - val_loss: 1.4229 - val_acc: 0.3227\n",
      "Epoch 6/30\n",
      "2394/2394 [==============================] - 113s - loss: 1.0543 - acc: 0.3874 - val_loss: 1.4017 - val_acc: 0.3227\n",
      "Epoch 7/30\n",
      "2394/2394 [==============================] - 110s - loss: 1.0505 - acc: 0.3874 - val_loss: 1.4112 - val_acc: 0.3227\n",
      "Epoch 8/30\n",
      "2394/2394 [==============================] - 111s - loss: 1.0373 - acc: 0.3875 - val_loss: 1.4043 - val_acc: 0.3227\n",
      "Epoch 9/30\n",
      "2394/2394 [==============================] - 109s - loss: 1.0287 - acc: 0.3875 - val_loss: 1.3810 - val_acc: 0.3227\n",
      "Epoch 10/30\n",
      "2394/2394 [==============================] - 110s - loss: 1.0016 - acc: 0.3875 - val_loss: 1.3678 - val_acc: 0.3227\n",
      "Epoch 11/30\n",
      "2394/2394 [==============================] - 112s - loss: 0.9634 - acc: 0.3888 - val_loss: 1.0418 - val_acc: 0.3351\n",
      "Epoch 12/30\n",
      "2394/2394 [==============================] - 104s - loss: 0.8995 - acc: 0.3962 - val_loss: 0.9385 - val_acc: 0.3419\n",
      "Epoch 13/30\n",
      "2394/2394 [==============================] - 99s - loss: 0.8679 - acc: 0.3967 - val_loss: 0.9154 - val_acc: 0.3423\n",
      "Epoch 14/30\n",
      "2394/2394 [==============================] - 104s - loss: 0.8632 - acc: 0.3971 - val_loss: 0.9306 - val_acc: 0.3423\n",
      "Epoch 15/30\n",
      "2394/2394 [==============================] - 109s - loss: 0.8361 - acc: 0.3969 - val_loss: 0.8857 - val_acc: 0.3423\n",
      "Epoch 16/30\n",
      " 105/2394 [>.............................] - ETA: 91s - loss: 0.8747 - acc: 0.3949"
     ]
    }
   ],
   "source": [
    "model.fit(X_train, Y_train, nb_epoch=30, batch_size=5,\n",
    "          sample_weight=train_sample_weight,\n",
    "         validation_data=(X_test, Y_test, test_sample_weight),\n",
    "         callbacks=[tb_callback, mc_callback])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['acc', 'loss', 'val_acc', 'val_loss']"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.history.history.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f883770fe10>"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nf81d99133znd4Et6DskoOUtJSdG5c+ecjrtr1y418fJIZYw2DgDmunBBOnPG7Ch8i3szAAQeEm24\npVOnTrJYLHrzzTd17733Os3P2bRpU+3cuVNfffWVUlNT9fLLL+uaa66RJP3nP/8pUPpV2LFDQ0M1\nadIk7du3T999952mTp2qqlWrunWOqlWrym63a/369YVOX9K7d2+FhYVp9OjRSklJUUpKisaNG6es\nrCz16dPHG5dJknT0qPTVV8ZyVJTUooXXDg0AcJHVKnkwlXSpwr0ZAAKP6aXj8+fP1wcffKCjR4+q\nTp06evLJJ9WlS5cit1++fLkWLFign3/+WeXLl1d0dLTGjRunG/KNBrpy5Uq98847Sk1NVY0aNfTI\nI4/kztmIkqlUqZI6d+6s5cuXKy4uzumzxx57TPv379fTTz+tChUqqHfv3hoxYoROnDiht99+W5Uq\nVVJoaMH/5Bz9q2rWrKkZM2bo9ddfV2xsrOrWrauxY8fqb3/7m1vn6Nmzp1q1aqVXX31Vt956qxYv\nXiyLxZJ7nmuvvVYLFizQ66+/rvjfywUbN26sBQsWqG7dulf8/vmPU5z8ZeOMNg4A5oiLu0LZeJDg\n3uz6vRkA/MViN3H0iIULF+r111/Xyy+/rGbNmmnDhg16/fXXNXfuXLVp06bA9itXrtRf//pXjR8/\nXvfcc4+OHDmi559/XpUqVdInn3wiSfr88881YsQIDR48WA899JB+/PFHPfvssxo3bpz69u3rlbjT\n09PVoUMHrVu3TrVr1/bKMRF8OnSQ1q83lr/9VmrVytx4AAQm7ine4biO+/ev08WLxnUMCZE2by5m\n1HEAAC7jjXuzqS3aiYmJ6tu3r2JjYyVJUVFR2rZtmxISEgpNtFevXq2uXbvqkUcekSRFRkbqqaee\n0pgxY5SamqqoqCgtWLBAzZo10+jRo3OP+dNPP+mdd97xWqINFOfYMenLL43lOnWkli1NDQcAypyQ\nECkhgSQbAGAO0/po79u3T0ePHlVMTIzT+piYGO3YsUM5OTkF9pk9e7ZTqZKUN8hGuXLlJEn/+9//\n1OKyzrDt27fXsWPHtG/fPm9+BaBIy5cb08pIlI0DgD+FhkoPP2y0ZD/+uNnRAADKKtMS7YMHD8pi\nsahWrVpO6yMjI2Wz2ZSWllbsMfbu3avExER17txZkZGRkiSbzVagr1G1atVkt9t18OBB730B4AoY\n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\nzYRXVEgLsgHPLQnGQLshunUTs6E1H0REREREROSwgADrZb5upVAAhYXWX9dqxQJVrdY5Y5OKgTYR\nERERERF5DHtKghkMIjP5xInA99+bz8tdFox7tD1BXJz7+vFezulHREREREQuk5wM7NhhPev4rbZv\nF/u158wBuncHnnnGsq+xLNj27SIDeny8a8ZtxEDb2RIT7e+TleXYvRzpx3s5px8REREREbmMsSTY\nvHl1B9tKJbBhA3D9ushY/uuvwM2bQEZG/dc1lgULDbVejswZuHTc2d54Q+4REBERERERNXq2SoL9\n+c/AokXA2bPAc88BLVtKu647yoIx0PYE330nHo70473cfy8iIiIiInILY0mwykqR1KyyEsjOtpyN\nDggA/vY34NtvLavy1sdYFsxVuHTc2Q4dAoYPt69P796O3cuRfryXc/oREREREZHbGEuC1adVK+l7\nuo1lwWxd01Gc0Xa2+++XewRERERERERNjj1lwXx9gTZtXDcWBtpERERERETU6NlTFiw2VrR3FQba\nRERERERE5BWSk23v01YqgYULXTsOBtquYDDY92hIP95LvnsREREREZFHMZYFsxZsK5WiBJgrS3sB\nDLSJiIiIiIjIi9gqCzZnjuvHIHugvXnzZkRFRSEkJARjxozB3r17622/e/duxMTEoF+/fggPD8eT\nTz6JkpISizb79u1DbGws+vfvjxEjRmDFihW4evWq8wd/7hxnO4mIqEmy9/O7qqoKL7zwAsLDwzFg\nwADMnj0bFy9edNNoiYioqZFSFsyVZA20MzMzsWbNGiQlJSE3NxcTJ07EkiVLkJeXV2f7PXv2YOnS\npZgwYQJyc3ORlpaGgoICJCYmmtrs27cPixcvxpgxY/Dhhx/i+eefR25uLpYtW+aut0VEROTV7P38\nBoB58+bh/PnzeO+995CVlYWrV69i3rx5bhw1ERE1RcayYK5MfFYXWetoazQaTJ06FdHR0QAAtVqN\n48ePIyMjA4MHD67Vfv/+/Rg7diymTZsGAAgKCsL8+fOxZMkSFBUVQa1WY9OmTYiKisKsWbNMbR57\n7DGkpaXh1VdfhVJqBXMiIiKqk72f30eOHMHXX3+NTz75BG3btgUApKSk4JtvvkF1dTWaN2/u1vET\nERG5mmyB9g8//IBLly5h0KBBFucHDRqE5cuX1/nBm56eXus6ht+Xazdr1gwA8O6770J/S5XyDh06\n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\nrJGYmNjcpTaLxtbDMG6erLdv325Rdc3L5XIZffv2rff3Hx8fb8TFxdmuP+60HoZhn/64cOGCMXjw\nYCM3N9e0PT4+3njuueds1xueRDbXIZvJ5lpkcx2y2YxsruPtbPb10k/h25yTJ0/q4sWLioyMNG2P\njIzUsmXLVFVVpXvvvdei6tCcoqOjFRcX1+C+n376SVVVVQ32SXZ2dnOU1+waWw+78fPzU25uru67\n7z7T9oCAABUUFNiuP+60HnbSrVs3HTp0qMF9vr6+tusNTyGbUYtsNiOb65DNZmRzHW9nM5/RbqKz\nZ8/K4XDokUceMW0PDg5WTU2Nzp07Z1FlaG7/7IFbnT17VpLUo0cP0/bg4GAVFxersrLSq7VZobH1\nsKPOnTurffv27seVlZU6ePCg+vfvb8v+aGw97Oz69evatm2bfvzxR02fPt2WveEJZDNqkc1mZLMZ\n2WxGNjfM09nMoN1EFRUVklTv3Z/ax+Xl5c1ek9WOHj2q6dOna9iwYRozZowyMjJUVVVldVmWqqio\nkMPhMJ28JHv3iSTl5uYqNjZWkZGRGj9+vDZu3CjDMKwuq1ksXbpULpdLM2bMoD9Utx4zZ850b7Nb\nfzz//PMKDw/XqlWrlJqaqqioKHrjXyKb6yOb6+PfV8Psdu69FdlsRjZ7J5u5dBz/ykMPPaTKykrN\nmDFDXbt2VX5+vlauXKnCwkIlJydbXR5akICAAFVXV+vVV1+Vn5+fcnJylJycrNLSUs2fP9/q8rxq\nyZIlys7OVlpamoKDg60ux3K3rkftu8N27I+0tDRduXJFu3fvVkJCgpYtW2Z1SWgjyGY0lR3PvbXI\nZjOy+SZvZDODdhM98MADkuq/c1H72M/Pr9lrstLWrVtNj/v06SOXy6W0tDQlJCQoMDDQosqs5efn\nJ8MwdO3aNdNPWFwul6S6PrKT/fv3mx47nU4VFhYqMzNTs2fPlq9v2zsN1dTUKDExUd9++63S09MV\nFRUlyb79cbv1kOzZH4GBgQoMDJTT6VRFRYWSkpK0YMECW/bGf0U2m5HNDbPrubcxdjz3ks1mZLOZ\nN7KZS8ebqFevXjIMw32tfq3Tp0/L19dXPXv2tKiyliM0NFSSVFxcbHEl1gkJCZGken1y5swZBQUF\n1bv0xK6cTqcqKyvdJ6q2ZunSpfruu++UmZlpCi679sft1uN22mJ/nD9/XtnZ2aqpqTFt79Onj65e\nver+j57deuO/IpvvjGy277n3brXFc++tyGYzstn72cyg3UQhISEKDg5Wbm6uafvevXs1ZMgQtWvX\nzqLKmt+pU6e0aNGiejeZOXr0qHx8fGx9Gc7AgQPVoUOHen2yb98+jRw50pqiLPTzzz9r4cKF7s9R\n1jp27Jj8/f3VuXNniyrzni1btmj79u1as2aNBg4caNpnx/5obD3s1B9nzpzRwoULlZ+fb9p+/Phx\ndejQQdHR0erYsaOtesMTyOY6ZPPt2fHc2xg7nXtrkc1mZPNN3s7mtvdzfy+aN2+e3n77bT355JMa\nPHiwvv76a+Xl5WnTpk1Wl9asgoKClJ+fr9dee02LFi1SYGCg8vLylJmZqSlTpsjf39/qEr2qrKxM\n1dXV7htCXLt2TZcuXZIkdenSRS+//LLWrVunxx57TL1791ZWVpaKiooUHx9vZdle09h6dO/eXfv2\n7VNCQoIWLFggf39/7dmzRzt27FBCQoKVZXvFtWvXlJqaqsmTJyskJMS9DrUCAgJs1R93Wg879UdE\nRITCwsL0zjvvaPHixQoJCdHBgwf1xRdfaPLkybr//vtt1RueRDbfRDaTzbcim+uQzWZkcx1vZ7PD\naMu3j/OCzz//XJmZmSoqKlJISIhef/11jRgxwuqyml1hYaFSU1OVl5en0tJSBQUFaeLEiZo1a5bu\nuadtXygxbdo0HT582LTNMAw5HA7t2bNHQUFB+uijj7R161aVlpYqNDRUb775Zpv9lQl3Wo+rV6/q\nww8/1JEjR1ReXq6ePXsqNjZWMTExFlXsPfn5+XrxxRfrba9dj99//12GYdimP5qyHgUFBbbpj5KS\nEqWkpGjv3r0qLy9Xjx49NHHiRL300kvy8fGxVW94Gtl8E9lMNtcim+uQzWZks5k3s5lBGwAAAAAA\nD2rbb28CAAAAANDMGLQBAAAAAPAgBm0AAAAAADyIQRsAAAAAAA9i0AYAAAAAwIMYtAEAAAAA8CAG\nbQAAAAAAPMjX6gIAWCsjI0MZGRmNHhMdHX3HY7whPT1d69at05EjR5r9ewMAYBWyGWj9GLQByOFw\naM2aNQoICGhw/4MPPtjMFd3kcDjkcDgs+d4AAFiJbAZaNwZtAJKk3r17q3v37laXAQAA/o9sBlov\nPqMNoEkKCwvldDq1YcMGrV27ViNGjFB4eLgmTZqkvLw807ElJSVavHixhg0bpn79+mnEiBF6//33\nVV5ebjru/PnzSkhIUEREhJ566inFx8fr2LFj9b53SUmJEhISNGjQIA0YMEBz5szRpUuXvPp6AQBo\n6chmoOVi0AZwV7788kv98ssvWr58udLT01VWVqbZs2erqKhIklRVVaW4uDjl5OTolVdeUVZWlubM\nmaMdO3Zo9uzZ7udxuVx64YUXdPr0aSUlJWn16tWqrq5WXFyc/vzzT/dxhmHojTfeUP/+/bVmzRrN\nmTNHOTk5WrlyZbO/dgAAWiKyGWh5uHQcgKSbodkUZWVl+uqrr9SuXTtJ0vLlyxUXF6fs7GxNnz5d\nu3bt0okTJ/Txxx8rKipKkjRo0CAZhqH33ntPhw4dUkREhLZs2aLi4mJt2bJFgYGBkiSn06lx48Zp\n165dmjlzpiSpurpa48aN05QpU9zPlZOTo/3793t6CQAAaFHIZqD1YtAGIMMwNHr06Ab3ORwOZWdn\nq2PHjpKkoUOHuoNcuhmuvr6+OnHihCTp0KFD8vX11fDhw03PM3LkSC1dulSHDx9WRESEDhw4oF69\nermDXJI6d+5c71I3SfVq6969u3799dd/92IBAGgFyGagdWPQBiCHw6G1a9eqa9euDe7v2bOniouL\nJUkPP/ywaZ+Pj486deqkK1euSJKKiorUpUsX+fj4mI6rfe7ay9hqj2uKfx7Xrl071dTUNOlrAQBo\njchmoHVj0AYgSXr00UebdGfTe+6pf2sHwzDcv+rjdr/yo/byt9qvdzgcqq6u/rflAgDQ5pHNQOvF\nzdAA3JV/3lH0xo0bKisrc7+z3a1bN12+fFnXr183HXfx4kX3fkkKCgpyvxN/q4qKCv3111/eKB0A\ngDaJbAZaHgZtAHflhx9+MF0alp+fr+vXr+uJJ56QJEVGRurGjRvKyckxfd33338vh8OhIUOGSJIG\nDBigCxcuqKCgwH1MRUWFhg4dqlWrVnn/hQAA0EaQzUDLw6XjACRJx48fV0lJyW33d+rUSZLUvn17\nzZ07V7Gxsbpx44aWLVsmf39/TZgwQZI0duxYhYaG6t1331VZWZl69eql3377TWlpaRo1apTCw8Ml\nSTExMdq8ebMWLFigxMREdejQQevWrZOPj4+mTZvm/RcMAEALRzYDrReDNgBJ0ty5cxvdv3PnTknS\n+PHj1b59ey1ZskSXL19Wnz59lJKS4g57X19frV+/XikpKVq1apVKS0sVGBioqVOnat68ee7n8/f3\n16ZNm7RixQolJibq77//Vv/+/bVp0yYFBwe7j7vd58putx0AgLaCbAZaL4fR1F/QB8DWCgsLNXr0\naM2fP1/z58+3uhwAAGyPbAZaLj6jDQAAAACABzFoAwAAAADgQQzaAJrM4XDw+SsAAFoQshlomfiM\nNgAAAAAAHsRPtAEAAAAA8CAGbQAAAAAAPIhBGwAAAAAAD2LQBgAAAADAgxi0AQAAAADwIAZtAAAA\nAAA86H9MTpeBJrY2JwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f884095fa90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1,2 ,figsize=(16,8))\n",
    "\n",
    "\n",
    "ax[0].plot(model.history.epoch, model.history.history[\"acc\"], \"-bo\", label=\"Train\")\n",
    "ax[0].plot(model.history.epoch, model.history.history[\"val_acc\"], \"-rs\", label=\"Validation\")\n",
    "ax[0].set_xlabel(\"Epoch\")\n",
    "ax[0].set_ylabel(\"Accuracy\")\n",
    "ax[0].legend(loc=\"upper left\")\n",
    "\n",
    "ax[1].plot(model.history.epoch, model.history.history[\"loss\"], \"-bo\", label=\"Train\")\n",
    "ax[1].plot(model.history.epoch, model.history.history[\"val_loss\"], \"-rs\", label=\"Validation\")\n",
    "ax[1].set_xlabel(\"Epoch\")\n",
    "ax[1].set_ylabel(\"Loss\")\n",
    "ax[1].legend(loc=\"upper left\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "predictions = model.predict(X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 6, 6, 6,\n",
       "       6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,\n",
       "       6, 6, 6, 2])"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predictions.argmax(axis=-1)[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 6, 6, 6, 6, 7, 6,\n",
       "       6, 6, 6, 6, 6, 6, 3, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3,\n",
       "       4, 6, 6, 2], dtype=int32)"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y_train[1].flatten()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False,  True,  True,  True,\n",
       "        True,  True,  True, False,  True,  True,  True,  True,  True,\n",
       "        True,  True, False, False,  True,  True,  True,  True,  True,\n",
       "        True,  True,  True,  True,  True,  True,  True,  True,  True,\n",
       "       False, False,  True,  True,  True], dtype=bool)"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predictions.argmax(axis=-1)[1] == Y_train[1].flatten()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "predictions_val = model.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,\n",
       "       6, 6, 6, 2])"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predictions_val.argmax(axis=-1)[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6,\n",
       "       6, 6, 6, 2], dtype=int32)"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y_test[0].flatten()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import classification_report, confusion_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[    0, 68443,     0,     0,     0,     0,     0,     0],\n",
       "       [    0,  2394,     0,     0,     0,     0,     0,     0],\n",
       "       [    0,     0,  2394,     0,     0,     0,     0,     0],\n",
       "       [    0,     0,     0,     0,     0,     0,   666,     0],\n",
       "       [    0,     0,     0,     0,     0,     0,   655,     0],\n",
       "       [    0,     0,     0,     0,     0,     0,   308,     0],\n",
       "       [    0,     0,    10,     0,     0,     0, 43997,     0],\n",
       "       [    0,     0,     0,     0,     0,     0,   833,     0]])"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "confusion_matrix(Y_train.flatten(),\n",
    "                            predictions.argmax(axis=-1).flatten(),\n",
    "                labels=range(len(labels)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 2394,     0,     0,     0,     0,     0,     0],\n",
       "       [    0,  2394,     0,     0,     0,     0,     0],\n",
       "       [    0,     0,     0,     0,     0,   666,     0],\n",
       "       [    0,     0,     0,     0,     0,   655,     0],\n",
       "       [    0,     0,     0,     0,     0,   308,     0],\n",
       "       [    0,    10,     0,     0,     0, 43997,     0],\n",
       "       [    0,     0,     0,     0,     0,   833,     0]])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "confusion_matrix(Y_train.flatten()[Y_train.flatten() != 0],\n",
    "                            predictions.argmax(axis=-1).flatten()[Y_train.flatten() != 0],\n",
    "                labels=range(1,len(labels)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             precision    recall  f1-score   support\n",
      "\n",
      "      <BOS>       1.00      1.00      1.00      2394\n",
      "      <EOS>       1.00      1.00      1.00      2394\n",
      "          B       0.00      0.00      0.00       666\n",
      "          E       0.00      0.00      0.00       655\n",
      "          I       0.00      0.00      0.00       308\n",
      "          O       0.95      1.00      0.97     44007\n",
      "          U       0.00      0.00      0.00       833\n",
      "\n",
      "avg / total       0.91      0.95      0.93     51257\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/entity/anaconda2/lib/python2.7/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n",
      "  'precision', 'predicted', average, warn_for)\n"
     ]
    }
   ],
   "source": [
    "print classification_report(Y_train.flatten()[Y_train.flatten() != 0],\n",
    "                            predictions.argmax(axis=-1).flatten()[Y_train.flatten() != 0],\n",
    "                labels=range(1,len(labels)), target_names=labels[1:])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>&lt;BOS&gt;</th>\n",
       "      <th>&lt;EOS&gt;</th>\n",
       "      <th>B</th>\n",
       "      <th>E</th>\n",
       "      <th>I</th>\n",
       "      <th>O</th>\n",
       "      <th>U</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>&lt;BOS&gt;</th>\n",
       "      <td>2394</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>&lt;EOS&gt;</th>\n",
       "      <td>0</td>\n",
       "      <td>2394</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>666</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>E</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>655</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>I</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>308</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>O</th>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>43997</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>U</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>833</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       <BOS>  <EOS>  B  E  I      O  U\n",
       "<BOS>   2394      0  0  0  0      0  0\n",
       "<EOS>      0   2394  0  0  0      0  0\n",
       "B          0      0  0  0  0    666  0\n",
       "E          0      0  0  0  0    655  0\n",
       "I          0      0  0  0  0    308  0\n",
       "O          0     10  0  0  0  43997  0\n",
       "U          0      0  0  0  0    833  0"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_cfr = confusion_matrix(Y_train.flatten()[Y_train.flatten() != 0],\n",
    "                            predictions.argmax(axis=-1).flatten()[Y_train.flatten() != 0],\n",
    "                labels=range(1,len(labels)))\n",
    "\n",
    "df_cfr = pd.DataFrame(df_cfr, index=labels[1:], columns=labels[1:])\n",
    "df_cfr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f87c0292390>"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nF45EC3rEGgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f87c0292d90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(df_cfr.divide(df_cfr.sum()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>&lt;BOS&gt;</th>\n",
       "      <th>&lt;EOS&gt;</th>\n",
       "      <th>B</th>\n",
       "      <th>E</th>\n",
       "      <th>I</th>\n",
       "      <th>O</th>\n",
       "      <th>U</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>&lt;BOS&gt;</th>\n",
       "      <td>1000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>&lt;EOS&gt;</th>\n",
       "      <td>0</td>\n",
       "      <td>1000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>270</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>E</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>259</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>I</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>204</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>O</th>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>15112</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>U</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>395</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       <BOS>  <EOS>  B  E  I      O  U\n",
       "<BOS>   1000      0  0  0  0      0  0\n",
       "<EOS>      0   1000  0  0  0      0  0\n",
       "B          0      0  0  0  0    270  0\n",
       "E          0      0  0  0  0    259  0\n",
       "I          0      0  0  0  0    204  0\n",
       "O          0     21  0  0  0  15112  0\n",
       "U          0      0  0  0  0    395  0"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_cfr = confusion_matrix(Y_test.flatten()[Y_test.flatten() != 0],\n",
    "                            predictions_val.argmax(axis=-1).flatten()[Y_test.flatten() != 0],\n",
    "                labels=range(1,len(labels)))\n",
    "\n",
    "df_cfr = pd.DataFrame(df_cfr, index=labels[1:], columns=labels[1:])\n",
    "df_cfr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f8837e17590>"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nkC5FCTimAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f87a71fbc90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(df_cfr.divide(df_cfr.sum()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<BOS>     1000\n",
       "<EOS>     1000\n",
       "B          270\n",
       "E          259\n",
       "I          204\n",
       "O        15133\n",
       "U          395\n",
       "dtype: int64"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_cfr.sum(axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f8821e25390>"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAs0AAAIhCAYAAAC1yYd4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtUlXW+x/HPw01FnJXXAiWxvGRpmIIpXjK1OmkWYccr\nqNiUlTpZ6Tg54Tha48wUTiU4qCdF1DJN1EmrmUwlTfMyrjTylGVHkRQQcTIJxdj7/NHy0S0P+wFj\nw976frX2Wu3ffi5fnlr25dNv/36G0+l0CgAAAECF/Gq7AAAAAMDb0TQDAAAANmiaAQAAABs0zQAA\nAIANmmYAAADABk0zAAAAYIOmGQAAAD7L6XTq9ddfV/v27ZWSkmJ7/Oeff66EhARFRkaqW7dumjFj\nhs6ePWt7Hk0zAAAAfNKpU6f061//Whs2bJC/v7/t8SdOnNDYsWPVokULrV69Wq+++qq2b9+upKQk\n23NpmgEAAOCT/vGPfygwMFCrV6+Wn599W7t06VIFBQVp1qxZat26tbp166apU6dq/fr1ys3NdXsu\nTTMAAAB8Uv/+/ZWWlqaQkJBKHf/pp5+qa9euCggIMMdiYmIkSTt27HB7Lk0zAAAAfFLz5s2rdPyR\nI0fKnVOvXj01btxYhw8fdnsuTTMAAACuCcXFxapXr1658eDgYJ05c8btuTTNAAAAgI0A+0MAAACA\n6hEXF2c5npmZ6fF7N2jQwDJR/uGHH9SgQQO353p103x7y7tqu4Srwp7PPf8vIQAAuDJBv2pc2yW4\n8HT/1bpL7f28LVu21NGjR13GTp8+rVOnTunmm292e65XN80AAAC4utREolyRXr16KSMjQ6WlpQoK\nCpIkbdmyRf7+/urZs6fbc5nTDAAAAJNhGB59Vafvv/9ehYWFOnHihCTpxx9/VGFhoQoLC+VwOJSc\nnKxHH33UPH7kyJHy9/fXtGnTdOTIEe3cuVPJyckaNmyYmjZt6vZeJM0AAADwSRMmTNCePXvM94sX\nL9aiRYtkGIY++ugjFRYWumxact111yk9PV0vvviiHnroIYWEhOjBBx/Us88+a3svw+l0Oj3yU1QD\n5jRXD+Y0AwDgvbxtTnOnVn09ev3P/m+TR6/vKUzPAAAAAGzQNAMAAAA2aJoBAAAAG3wREAAAACY/\nVe8KF1cLkmYAAADABkkzAAAATNW9lvLVospJ82effaaUlBR99tlnnqgHAAAA8DpVTppnz56t3Nxc\nbdu2TStWrPBETQAAAKglfgazd61U6ans27dPBw4c0Pz585Wdna39+/d7qi4AAADUAl/aRrsmValp\nTk9P18CBA9WhQwcNHDhQixcv9lRdAAAAgNeodNOcl5enDz/8UImJiZKkxMREffjhh8rLy/NYcQAA\nAIA3qHTTvHTpUkVHR6tdu3aSpFtuuUVdu3bVsmXLPFYcAAAA4A0q1TSXlJTonXfe0dixY13Gx4wZ\no1WrVuns2bMeKQ4AAAA1y/DwX76qUk1zZmammjZtql69ermM9+7dW82aNdPq1as9UhwAAADgDSq1\n5FzXrl3Vu3dvy8/mzZtH0gwAAHCVYMk5a5Vqmtu0aVNurLi4WDk5OWrWrJnCw8OrvTAAAADAW9j+\nKrF8+XJNnz7dZSwzM1M9e/ZUXFycevXqpRkzZsjpdHqsSAAAANQM1mm25rZpXrt2rWbNmuUyduTI\nEU2fPl0tWrRQamqqfvvb32rdunVauXKlRwsFAAAAaovb6RlvvfWWEhMTNXXqVHPs7bffVllZmZKT\nk9W2bVtzfM2aNRo6dKjnKgUAAIDH+flwGuxJbpPmgwcP6qGHHnIZ27p1q1q3bu3SMPfo0UNff/21\nZyoEAAAAapnbprmsrEwNGzY03586dUrffPONYmJiXI4LDg7W+fPnPVMhAAAAUMvcNs3XX3+9cnNz\nzfdZWVmSpO7du7scd+zYMTVp0sQD5QEAAAC1z23T3LNnT6Wmpur06dM6evSoUlNT1ahRI/Xo0cPl\nuOXLl6tDhw4eLRQAAACeZ8jPoy9f5faLgI899pji4+N15513mmPJyckKDAyU9PNazZMmTdKOHTuU\nnp7u0UIBAACA2uK2aQ4LC9M777yj999/X+fPn1dMTIzLFwCDg4NVWFioOXPmKCoqyuPFAgAAwLN8\neS1lT7LdEbBRo0YaOXKk5WeGYWjNmjXVXhQAAADgTSq1jbYkHT9+XHv27FF+fr78/PwUGhqq6Oho\nvgAIAABwFWGdZmu2TXNRUZFmzJihjRs3yuFwyM/PTw6H4+eTAwI0aNAgTZs2TQ0aNPB4sQAAAEBt\ncNs0FxcXa9SoUTpz5oySkpJ01113KSwsTOfOndPx48e1c+dOzZ8/X2PGjNGbb76pOnXq1FTdAAAA\n8ABDJM1W3DbNixcvVmlpqdasWeOyyUmdOnUUERGhiIgI3XvvvRo+fLiWLFmixx9//IqKiIuLu6Lz\nAAAAgJrgdrG8f/7zn3r66addGubLNWzYUBMnTtSGDRuqvTgAAADAG7hNmo8eParIyEjbi9x+++3K\nycm54iIyMzOtr9vyriu+JgAAAFBd3DbNfn5+Kisrs71IWVmZ/Px8d4cXAAAA/MzPoKez4vap3HTT\nTdq1a5ftRbZv366bbrqp2ooCAABA7TAMw6MvX+W2aX7ggQf0+uuv67vvvqvwmEOHDiklJUWxsbHV\nXhwAAADgDdxOzxgxYoQ++OADxcbGKj4+XlFRUQoNDVVgYKByc3O1ZcsWrVy5UpGRkRo2bFhN1QwA\nAAAPYXMTa26b5qCgIC1evFhz5sxRenq60tLSzM+cTqdCQkKUkJCgCRMmyN/f3+PFAgAAALXBdkfA\nevXq6fe//72ee+45ZWdnq6CgQIZhKDQ0VLfeequCgoJqok4AAADUADY3sWbbNF9Qt25dRUVFebIW\nAAAAwCvZrilSVFSkDz74QNu3b5fD4ZAk7d69W0OGDFGnTp103333af369R4vFAAAAKgtbpPm7Oxs\njR49WsXFxZKk2267Ta+88orGjRunrl27KjExUd98841++9vfqm7duurfv3+NFA0AAADUJLdNc1pa\nmtq3b6+kpCQ5HA698sorevrpp/XII49o2rRp5nGpqalatGgRTTMAAICPY3MTa26fymeffaZnn31W\n7dq1U/v27TVz5kwdPHhQAwcOdDluwIAB+uabbzxaKAAAAFBb3CbNp06dUosWLcz3zZs3V506ddSo\nUSOX4xo0aKAffvjBMxUCAACgxvjyrn2e5DZpLisrK7f+sp8fkT0AAACuLW6TZqs9wvntAwAA4OrF\njoDW3DbNTqdTvXv3dhn76aefdP/993u0KAAAAMCbuG2aJ0yYUFN1AAAAwAuwI6C1SjXNGzdulL+/\nv+6+++5yx2zevFllZWUsNwcAAICrVqW+1WcYhl544QWVlpa6jJeWluqFF15gnjMAAACuapVqmvv2\n7av69etr3bp1LuPr1q1T/fr11a9fP48UBwAAAHiDSifN8fHxSk9PdxlfsmSJEhISPFEXAAAAasGF\n1dM89fJVlV50efDgwSooKNDHH38sScrKylJ+fr4GDx7sseIAAAAAb1Dpprl+/foaPHiwFi1aJEla\nvHixHnnkEQUHB3usOAAAANQsP8Pw6MtXVWl7v/j4eO3evVuZmZnas2cPUzMAAABwTXC75NzlWrRo\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f8837e08a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(df_cfr.divide(df_cfr.sum(axis=1), axis=0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def write_predictions(data, y_true, y_pred, labels, filename):\n",
    "    with open(filename, \"wb+\") as fp:\n",
    "        for i, seq in enumerate(data):\n",
    "            y = y_pred[i, (y_true[i, :]!= 0).flatten()]\n",
    "            for t, pred in zip(seq, y):\n",
    "                if t.tag in [\"<BOS>\", \"<EOS>\"]:\n",
    "                    continue\n",
    "                print_line = \"%s\\t%s\\t%s\" % (t.token, t.tag, labels[pred])\n",
    "                if t.token == \" \":\n",
    "                    print_line = \"%s\\t%s\\t%s\" % (\"<space>\", t.tag, labels[pred])\n",
    "                print >> fp, print_line\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "write_predictions(test, Y_test, predictions_val.argmax(axis=-1), labels, \"dev_notypes.word.tsv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
